package zhu.yu.OOP_abstract_class.多态.USB案例;
// main
public class DemoMain {
    public static void main(String[] args) {

        // 首先创建一个笔记本电脑
        Computer computer = new Computer();
        computer.powerOn();

        // 准备一个鼠标，供电脑使用
        USB usb = new Mouse();
        computer.usbDevice(usb);

        // 创建一个USB键盘，非多态
        Keyboard keyboard = new Keyboard();
        // 方法参数是USB类型，传递进去的是实现类对象
        computer.usbDevice(keyboard);  // 正确写法  也发生了向上转型

        System.out.println("========================");
        // 使用子类对象，匿名对象，也可以
        computer.usbDevice(new Keyboard());  // 正确写法  也发生了向上转型

        System.out.println("========================");
        method(20);  // 20.0 正确写法 int ---> double
        method(10.0);  // 10.0 正确写法 double ---> double
        int a = 22;
        method(a);  // 22.0 正确写法 int ---> double
        // 类型自动转换


        // 准备一个键盘，供电脑使用 多态实现
        USB usb1 = new Keyboard();
        computer.usbDevice(usb1);

        computer.powerOff();
    }

    public static void method(double num) {
        System.out.println(num);
    }
}
